/**   
 * Copyright © 2019 eSunny Info. Tech Ltd. All rights reserved.
 * 
 * @Description:TODO(功能)
 * @className ProductsDao.java
 * @Package: com.erp.dao 
 * @author: yj   
 * @date: 2019年1月17日 上午9:51:33 
 */
package com.erp.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.erp.po.Products;
import com.erp.util.Page;

/**
 * @className ProductsDao.java
 * @author yj
 * @Description:TODO(功能)
 * @Date 2019年1月17日
 */
public interface ProductsDao {
	// ---------------------- Products <商品表> ----------------------------
	
	// 根据 id 查询product
	ResultSet selectProductById(Connection conn, int id) throws SQLException;
	
	// 查询 ( 查询 Products <商品> 全部 )(分页)
	ResultSet selectProductsByPage(Connection conn, Page<Products> page) throws SQLException;
	
	// 根据条件查询 ( 根据条件查询 Products <商品> 全部 )(分页)
	ResultSet selectProductsByCondition(Connection conn, Products p, Page<Products> page) throws SQLException;

	// 查询 ( 查询 总记录数 )
	ResultSet selectProductsByTotal(Connection conn) throws SQLException;

	// 根据条件查询 ( 根据条件查询 总记录数 )
	ResultSet selectConditionByTotal(Connection conn, Products p) throws SQLException;

	// 增加 ( 增加 商品 )
	int insertProducts(Connection conn, Products products) throws SQLException;

	// 查询 (是否有添加重名的商品)
	ResultSet selectProductsByInsert(Connection conn, Products products) throws SQLException;

	// 查询 (供应商id是否有存在)
	ResultSet selectProductsByCateId(Connection conn, Products products) throws SQLException;

	// 查询 (商品类别id是否有存在)
	ResultSet selectProductsByProId(Connection conn, Products products) throws SQLException;

	// 修改 ( 根据id 修改商品属性: 商品名称 , 进价 , 售价 , 存货(数量) )
	int updateProductsById(Connection conn, Products products) throws SQLException;

	// 删除 ( 根据id 删除商品 )
	int deleteProductsById(Connection conn, int productId) throws SQLException;
	// 查询 (在删除前 查询是否有该id的商品)

	// 删除 ( 删除 供应商 ) -- 外键校验
	ResultSet selectProvidersByFkCheck(Connection conn, int providerId) throws SQLException;

	// 删除 ( 删除 类别 ) -- 外键校验
	ResultSet selectCategorysByFkCheck(Connection conn, int categoryId) throws SQLException;
	
	// 校验product重名
	ResultSet selectProductByName(Connection conn, String productName) throws SQLException;
}
